<%-- 
    Document   : edit
    Created on : 05-jul-2012
    Author     : Froy A.
    Copyright Notice: SFERP
    Description: Página para editar el contenido de un empleado por curp.
--%>
<%@page import="java.util.Date,java.util.Calendar,java.text.SimpleDateFormat
        ,java.util.Locale,java.text.DateFormat,s.f.empresas.Empresas
        ,s.f.empleados.CRUD_Empleados,java.util.Map
        ,s.f.empleados.Empleados,s.f.util.Validacion" contentType="text/html; charset=UTF-8" trimDirectiveWhitespaces="true"%>
<%
    request.setCharacterEncoding("UTF-8");

    Empleados empleados = new Empleados();
    Empresas empresas = new Empresas();
    Validacion validacion = new Validacion();

    String strPais = "";
    String strEstado = "";
    String strMunicipio = "";
    String strTipoRegistro = request.getParameter("forma");

    String strFecha = ""; //Utilizado si la fecha es null
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy", new Locale("es", "MX"));

    if (empleados.getFnacimiento() == null) {
        Calendar calendar = Calendar.getInstance();
        strFecha = sdf.format(calendar.getTime());
    }

    if (request.getMethod().equals("POST")) {

        empleados.setNombre(request.getParameter("TXTNOMBRE").trim().toUpperCase());
        empleados.setAppaterno(request.getParameter("TXTAPPATERNO").trim().toUpperCase());
        empleados.setApmaterno(request.getParameter("TXTAPMATERNO").trim().toUpperCase());

        Date convertedDate = sdf.parse(request.getParameter("TXTFNACIMIENTO"));
        empleados.setFnacimiento(convertedDate);
        strFecha = sdf.format(empleados.getFnacimiento());

        empleados.setEmail(request.getParameter("TXTEMAIL").trim().toLowerCase());
        empleados.setNss(request.getParameter("TXTNSS").trim());
        empleados.setRfc(request.getParameter("TXTRFC").trim().toUpperCase());
        empleados.setCurp(request.getParameter("TXTCURP").trim().toUpperCase());
        empleados.setSexo(request.getParameter("RDBSEXO"));

        if (!request.getParameter("SELECTPAIS").equals("-1")) { //idPais
            empleados.setPais(Integer.parseInt(request.getParameter("SELECTPAIS")));
        }
        if (request.getParameter("SELECTESTADO") != null) {
            empleados.setEstado(Integer.parseInt(request.getParameter("SELECTESTADO")));
        }

        if (request.getParameter("SELECTMUNICIPIO") != null) {
            empleados.setMunicipio(Integer.parseInt(request.getParameter("SELECTMUNICIPIO")));
        }

        if (strTipoRegistro != null && strTipoRegistro.equals("edit")) {
            validacion.validacionForma(empleados, "Editar");
        } else {
            validacion.validacionForma(empleados, "Añadir");
        }


        if (validacion.getTxtnombre().isEmpty()
                && validacion.getTxtappaterno().isEmpty()
                && validacion.getTxtfnacimiento().isEmpty()
                && validacion.getTxtemail().isEmpty()
                && validacion.getTxtnss().isEmpty()
                && validacion.getTxtrfc().isEmpty()
                && validacion.getTxtcurp().isEmpty()
                && validacion.getTxtpais().isEmpty()
                && validacion.getTxtestado().isEmpty()
                && validacion.getTxtmunicipio().isEmpty()) {

            if (strTipoRegistro != null && strTipoRegistro.equals("edit")) {
                CRUD_Empleados.updateEmpleado(empleados);
            } else {
                CRUD_Empleados.insertEmpleado(empleados);
            }
            response.sendRedirect("/empleados/admin/detail.jsp?CURP=" + empleados.getCurp());
            return;
        } else{
            empleados.setPais(0);
        }
    }
%>
<%
    if (strTipoRegistro != null && strTipoRegistro.equals("edit")) {

        if (request.getMethod().equals("GET") && request.getParameter("CURP") != null) {

            Map map = CRUD_Empleados.selectEmpleadobyCURP(request.getParameter("CURP"));
            String fecha = Validacion.invertirFecha(String.valueOf(map.get("FNACIMINETO")));
            Date date = sdf.parse(fecha);

            empleados.setNombre(String.valueOf(map.get("NOMBRE")));
            empleados.setAppaterno(String.valueOf(map.get("APPATERNO")));
            empleados.setApmaterno(String.valueOf(map.get("APMATERNO")));
            empleados.setFnacimiento(date);
            empleados.setEmail(String.valueOf(map.get("EMAIL")));
            empleados.setNss(String.valueOf(map.get("NSS")));
            empleados.setRfc(String.valueOf(map.get("RFC")));
            empleados.setCurp(String.valueOf(map.get("CURP")));
            empleados.setSexo(String.valueOf(map.get("SEXO")));

            strPais = String.valueOf(map.get("PAIS"));
            strEstado = String.valueOf(map.get("ESTADO"));
            strMunicipio = String.valueOf(map.get("MUNICIPIO"));

            empleados.setPais(Integer.parseInt(String.valueOf(map.get("idPAIS"))));
            empleados.setEstado(Integer.parseInt(String.valueOf(map.get("idESTADO"))));
            empleados.setMunicipio(Integer.parseInt(String.valueOf(map.get("idMUNICIPIO"))));

            strFecha = sdf.format(date);
        }
    }
%>
<jsp:include page="/header.jsp" flush="true"/>
<script type="text/javascript">
    $(document).ready(function(){

        //INICIO--------------------------------------------PERSONA MORAL
        //Arreglo para el Autocomplete de JQuery
        var tiposRazonSocila = [
            ", S. EN N.C.",
            ", S. EN C.",
            ", S. DE R.L.",
            ", S. EN C. POR A.",
            ", S.A.",
            ", S.A. DE C.V.",
            ", S.N.C.",
            ", S.C.",
            ", S.N.C.",
            ", A.C.",
            ", A. EN P.",
            ", S.C.L.",
            ", S.C.S.",
        ]; 
        
        $("#idTXTRAZONSOCIAL").autocomplete({
            source : tiposRazonSocila
        });
            
        $("#idBTNCALCULARRFCMORAL").on('click',function(){
            sendRFCMoral();
        });
        
        function tiposRazonSocial(){
            $.ajax({
                url:"tiposRazonSocialJSON.jsp",
                data:{},
                datatype: "json",
                error:function(){
                    alert("El envio de datos no es el correcto.");  
                },
                success:function(json){
                    $.each(json, function(key, value) {
                        var li = $("<li></li>").attr("value", key).html(value);
                        var ul = $("<ul></ul>").append(li);
                        $("#divRazonSocial").append(ul);
                    });
                }
            });
        }
        
        /*
        $("#idTXTRAZONSOCIAL").keypress(function(event){
            if(event.keyCode == 44){ //44 = coma(,)
                tiposRazonSocial();
            }
        });
         */
           
        function sendRFCMoral(){
            $.ajax({
                url:"validacionRFCMoralajax.jsp",
                data:{
                    razonSocial : $("#idTXTRAZONSOCIAL").val(),
                    finscripcion : $("#idTXTFINSCRIPCION").val()
                    
                },
                datatype:"json",
                type: "POST",
                error:function(){
                    alert("El envio de datos no es el correcto.");
                },
                success:function(json){
                    $("#idTXTRFCMORAL").val(json.rfcmoral);
                }
            });
        }   
        
        $("#idTXTFINSCRIPCION").datepicker({
            showOn: "button",
            buttonImage: "/empleados/recursos/img/calendar.gif",
            buttonImageOnly: true,
            dateFormat : "dd-mm-yy",
            changeMonth: true,
            changeYear: true
        });
        
        //FIN-----------------------------------------------PERSONA MORAL
        
        //INICIO--------------------------------------------PERSONA FISICA
        
        $("#idTXTFNACIMIENTO").datepicker({
            showOn: "button",
            buttonImage: "/empleados/recursos/img/calendar.gif",
            buttonImageOnly: true,
            dateFormat : "dd-mm-yy",
            changeMonth: true,
            changeYear: true
        });
        
        showPaises();
        function showPaises(){
            $.ajax({
                url:"cargaPaisesJSON.jsp",
                data:{},
                datatype: "json",
                error:function(){
                    alert("El envio de datos no es el correcto.");  
                },
                success:function(json){
                    if(json.length <=0){
                        var option = $("<option></option>").attr("value", 0).html("Sin Pais");
                        $('#idSELECTESTADO').append(option);
                    } else {
                        $.each(json, function(key, value) {
                            //console.log(key);
                            //console.log(value.NOM_PAIS);
                            var option = $("<option></option>").attr("value", value.RID).html(value.NOM_PAIS);
                            $('#idSELECTPAIS').append(option);
                        });
                    }
                }
            });
        }
        
        //Deshabilitar los combos con menos gerarquía que idSELECTPAIS.
        document.getElementById("idSELECTESTADO").disabled = true;
        document.getElementById("idSELECTMUNICIPIO").disabled = true;
        
        //Acción cuando el combo es modificado. (idSELECTPAIS)
        $('#idSELECTPAIS').change(function(){    
            selectComboPE();
        });
        
        function selectComboPE(){
            var idSELECTPAIS = document.getElementById("idSELECTPAIS");
            var idSELECTESTADO = document.getElementById("idSELECTESTADO");
        
            limpiarcombo(idSELECTESTADO);
            idSELECTESTADO.disabled = false;
        
            $.ajax({
                url:"cargaEstadosJSON.jsp",
                data:{pais: idSELECTPAIS.options[idSELECTPAIS.selectedIndex].value},
                //data:{pais:$("#idSELECTPAIS").val()},
                datatype: "json",
                error:function(){
                    alert("El envio de datos no es el correcto.");  
                },
                success:function(json){
                    if(json.length <=0){
                        var option = $("<option></option>").attr("value", 0).html("Sin estado");
                        $('#idSELECTESTADO').append(option);
                        selectComboEM();
                    } else {
                        $.each(json, function(key, value) {   
                            var option = $("<option></option>").attr("value", value.RID).html(value.NOM_ENT);
                            $('#idSELECTESTADO').append(option);
                        });
                    }
                }
            });
                
        }
        
        //Acción cuando el combo es modificado. (idSELECTESTADO)
        $('#idSELECTESTADO').change(function(){    
            selectComboEM();
        });
        
        function selectComboEM(){
            var idSELECTESTADO = document.getElementById("idSELECTESTADO");
            var idSELECTMUNICIPIO = document.getElementById("idSELECTMUNICIPIO");
        
            limpiarcombo(idSELECTMUNICIPIO);
            idSELECTMUNICIPIO.disabled = false;
                
            $.ajax({
                url:"cargaMunicipiosJSON.jsp",
                data:{estado: idSELECTESTADO.options[idSELECTESTADO.selectedIndex].value},
                datatype: "json",
                type: "POST",
                error:function(){
                    alert("El envio de datos no es el correcto.");  
                },
                success:function(json){
                    if(json.length <=0){
                        var option = $("<option></option>").attr("value", 0).html("Sin municipio");
                        $('#idSELECTMUNICIPIO').append(option);
                    } else {
                        $.each(json, function(key, value) {
                            var option = $("<option></option>").attr("value", value.RID).html(value.NOM_MUN);
                            $('#idSELECTMUNICIPIO').append(option);
                        });
                    }
                }
            });
            /* por servlet
                $.ajax({
                    url: "/empleados/ServName",
                    data:{estado: comboESTADOS.options[comboESTADOS.selectedIndex].value},
                    //contentType:"application/x-www-form-urlencoded",
                    contentType: "application/json; charset=utf-8",
                    datatype: "json",
                    type: "GET",
                    error:function(){
                      alert("Ha ocurrido un error!");  
                    },
                    success:function(json){
                        $("#result").text(json);
                    }
                  
                });
             */              
        }
        
        $("#idBTNCALCULARRFC").on('click',function(){
            sendRFC();
        });
        
        function sendRFC(){
            $.ajax({
                url:"validacionRFCajax.jsp",
                data:{
                    fnacimiento : $("#idTXTFNACIMIENTO").val(),
                    nombre : $("#idTXTNOMBRE").val(),
                    apaterno : $("#idTXTAPPATERNO").val(),
                    amaterno : $("#idTXTAPMATERNO").val()
                },
                datatype:"json",
                type: "POST",
                error:function(){
                    alert("El envio de datos no es el correcto.");
                },
                success:function(json){
                    $("#idTXTRFC").val(json.rfc);
                }
            });
        } 
        
        $("#idBTNCALCULARCURP").on('click',function(){
            sendCURP();
        });
        
        function sendCURP(){
            var rdbsexo;
    
            if($("#idRDBSEXOM").is(':checked')) {  
                rdbsexo = $("#idRDBSEXOM").val();
            }
            if($("#idRDBSEXOF").is(':checked')) {  
                rdbsexo = $("#idRDBSEXOF").val();
            }
            
            $.ajax({
                url:"validacionCURPajax.jsp",
                data:{
                    fnacimiento : $("#idTXTFNACIMIENTO").val(),
                    nombre : $("#idTXTNOMBRE").val(),
                    apaterno : $("#idTXTAPPATERNO").val(),
                    amaterno : $("#idTXTAPMATERNO").val(),
                    sexo : rdbsexo,
                    estado: $("#idSELECTESTADO").val()   
                },
                datatype:"json",
                type: "POST",
                error:function(){
                    alert("El envio de datos no es el correcto.");
                },
                success:function(json){
                    $("#idTXTCURP").val(json.curp);
                }
            });
        }
        
        //FIN-----------------------------------------------PERSONA FISICA
        
        
        //INICIO--------------------------------------------FORMATO
        
        
        var input = $("<input>").attr("name","BTNADDEMPRESA")
        .attr("type","submit")
        .attr("id","idBTNADDEMPRESA")
        .addClass("button");

        var Request = {	
            parameter: function(name) {
                return this.parameters()[name]; 
            }, 
            parameters: function() {
                var result = {};
                var url = window.location.href;
                var parameters = url.slice(url.indexOf('?') + 1).split('&');
                for(var i = 0;  i < parameters.length; i++) {
                    var parameter = parameters[i].split('=');
                    result[parameter[0]] = parameter[1];
                } 
                return result;
            }
        }
        
        var tipoRegistro = Request.parameter('forma');
        
        var url = window.location.href;
        var parameters = url.slice(url.indexOf('?') + 1).split('&');
        
        if(tipoRegistro != null && parameters.length > 1 && tipoRegistro == "edit"){
            input = input.attr("value","Editar Empleados"); 
        }else{
            input = input.attr("value","Añadir Empleados"); 
        }
        
        
        $("#idPERSONAMORAL").append(input);
        $("#idPERSONAFISICA").append(input);
        
        //Cambiando a mayúsculas.
        cambiaraMayusculas($("#idTXTNOMBRE"));
        cambiaraMayusculas($("#idTXTAPPATERNO"));
        cambiaraMayusculas($("#idTXTAPMATERNO"));
        cambiaraMayusculas($("#idTXTFNACIMIENTO"));
        cambiaraMayusculas($("#idTXTRAZONSOCIAL"));
        
        function cambiaraMayusculas(elemento){
            elemento.blur(function(){
                var textoMayusculas = elemento.val().toUpperCase().trim();
                elemento.val(textoMayusculas);
            
                /*
            if(elemento.val().length>0){
                elemento.removeClass("elementosRequeridos");
            }
                 */
            });
        }
        
        elementosRequeridos();
        function elementosRequeridos(){
            $("#idTXTNOMBRE").addClass("elementosRequeridos");
            $("#idTXTAPPATERNO").addClass("elementosRequeridos");
            $("#idTXTAPMATERNO").addClass("elementosRequeridos");
            $("#idTXTFNACIMIENTO").addClass("elementosRequeridos");
            $("#idTXTNSS").addClass("elementosRequeridos");
            $("#idTXTRFC").addClass("elementosRequeridos");
            $("#idTXTCURP").addClass("elementosRequeridos");
        }
        
        //Muestra caracteristicas de localidad.
        $("#idTIPOPERSONA").on('click',function(){
            checkTipoEmpleado();  
        });
        
        function checkTipoEmpleado(){
            if($("#idTIPOPERSONA").is(':checked')) {  
                //change for toggle
                $("#idPERSONAMORAL").show("fast");
                $("#idPERSONAFISICA").hide("fast");
            } else {  
                $("#idPERSONAFISICA").show("fast");
                $("#idPERSONAMORAL").hide("fast");
            }
        }
        
        $("#idPERSONAMORAL").hide();
        
        function limpiarcombo(combo){
            while(combo.length > 0){
                combo.remove(combo.length - 1);
            }
        }
        
        //FIN-----------------------------------------------FORMATO
    });
</script>
<div id="central">
    <form method="POST" action="" name="FRMADDTEMPLEADO" class="frm-table">
        <div class="div-table-row">
            <label for="TIPOPERSONA" class="idTIPOPERSONA">Tipo de persona a capturar: (fisica / moral)</label>
            <input type="checkbox" name="TIPOPERSONA" id="idTIPOPERSONA" />
        </div>
        <fieldset id="idPERSONAMORAL">
            <legend class="leg-RegistroEmpleado">Registro Persona Moral:</legend>
            <div class="div-table-row">
                <label for="TXTRAZONSOCIAL">* Razón Social:</label>
                <input type="text" name="TXTRAZONSOCIAL" id="idTXTRAZONSOCIAL"
                       value="<%=empresas.getRazonSocial()%>"
                       style="width: 550px"/>
                <p><%=validacion.getTxtrazonsocial()%></p>
            </div>
            <div class="div-table-row">
                <label id="lblfnacimiento" for="TXTFINSCRIPCION">
                    * Fecha de Inscripción:</label>
                <input type="text" name="TXTFINSCRIPCION" id="idTXTFINSCRIPCION" 
                       value="<%=empresas.getFinscripcion()%>" 
                       maxlength="10" />
                <p><%=validacion.getTxtfinscripcion()%></p>
            </div>
            <div class="div-table-row">
                <label for="TXTRFCMORAL">
                    * Registro Federal de Contribuyentes (RFC):</label>
                <input type="text" name="TXTRFCMORAL" id="idTXTRFCMORAL" 
                       value="<%=empresas.getRfc()%>" 
                       maxlength="12" />
                <input type="button" name="BTNCALCULARRFCMORAL" id="idBTNCALCULARRFCMORAL" 
                       value="Obtener RFC" class="button"/>
                <p><%=validacion.getTxtRFCrazonSocial()%></p>
            </div>
        </fieldset>
        <fieldset id="idPERSONAFISICA">
            <legend class="leg-RegistroEmpleado">Registro Persona Fisica:</legend>
            <div class="div-table-row">
                <label id="lblnombre" for="TXTNOMBRE">* Nombre:</label>
                <input type="text" name="TXTNOMBRE" id="idTXTNOMBRE" 
                       value="<%=empleados.getNombre()%>" 
                       maxlength="50" />
                <p><%=validacion.getTxtnombre()%></p>
            </div>
            <div class="div-table-row">
                <label id="lblappaterno" for="TXTAPPATERNO">* Apellido Paterno:</label> 
                <input type="text" name="TXTAPPATERNO" id="idTXTAPPATERNO" 
                       value="<%=empleados.getAppaterno()%>" 
                       maxlength="50" title="Apellido Paterno" />
                <p><%=validacion.getTxtappaterno()%></p>
            </div>
            <div class="div-table-row">
                <label id="lblapmaterno" for="TXTAPMATERNO">Apellido Materno:</label>
                <input type="text" name="TXTAPMATERNO" id="idTXTAPMATERNO" 
                       value="<%=empleados.getApmaterno()%>" 
                       maxlength="50" title="Apellido Matenro" />
            </div>
            <div class="div-table-row">
                <label id="lblfnacimiento" for="TXTFNACIMIENTO">
                    * Fecha Nacimiento:</label>
                <input type="text" name="TXTFNACIMIENTO" id="idTXTFNACIMIENTO" 
                       value="<%=strFecha%>" 
                       maxlength="10" />
                <p><%=validacion.getTxtfnacimiento()%></p>
            </div>
            <div class="div-table-row">
                <label id="lblemail" for="TXTEMAIL">Email:</label>
                <input type="text" name="TXTEMAIL" id="idTXTEMAIL" 
                       value="<%=empleados.getEmail()%>" 
                       maxlength="70" />
                <p><%=validacion.getTxtemail()%></p>
            </div>
            <div class="div-table-row">
                <label id="lblnss" for="TXTNSS">
                    * Número del Seguro Social (NSS):</label>
                <input type="text" name="TXTNSS" id="idTXTNSS"
                       value="<%=empleados.getNss()%>" 
                       maxlength="11" 
                       title=""/>
                <a href="http://portal.infonavit.org.mx/wps/portal/TRABAJADORES/Menu%20de%20apoyo/Derechohabientes/obtenNSS/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3hnd0cPE3MfAwP30EAXAyM3fxcLD3dvIy9vU6B8JJK8QYCrpYGRn4uJV4AzkOtiRIxuAxzA0YCAbi_9qPSc_CSgK_088nNT9QtyQyMqHRUVAbqu8mg!/dl3/d3/L2dBISEvZ0FBIS9nQSEh/"
                   target="_blank" >Verificar NSS (Infonavit)</a>
                <p><%=validacion.getTxtnss()%></p>
            </div>
            <div class="div-table-row">
                <label id="lblrfc" for="TXTRFC">
                    * Registro Federal de Contribuyentes (RFC):</label>
                <input type="text" name="TXTRFC" id="idTXTRFC" 
                       value="<%=empleados.getRfc()%>" 
                       maxlength="13" />
                <input type="button" name="BTNCALCULARRFC" id="idBTNCALCULARRFC" 
                       value="Obtener RFC" class="button"/>
                <p><%=validacion.getTxtrfc()%></p>
            </div>
            <legend>* Sexo</legend>
            <div class="div-table-row" id="divSEXO">
                <label>Masculino:</label>
                <input type="radio" name="RDBSEXO" id="idRDBSEXOM" value="H" checked="checked">
            </div>
            <div class="div-table-row" id="divSEXO">
                <label>Femenino:</label>
                <input type="radio" name="RDBSEXO" id="idRDBSEXOF" value="M">
            </div>
            <div class="div-table-row" id="divPais">
                <label for="SELECTPAIS">* País</label>
                <select name="SELECTPAIS" id="idSELECTPAIS" 
                        title="Selecciona un Pais" class="localidad">
                    <option value="<%=empleados.getPais() == 0 ? -1 : empleados.getPais()%>"><%=strPais.isEmpty() ? "Selecciona un pais" : strPais%></option>
                </select>
                <p><%=validacion.getTxtpais()%></p>
            </div>
            <div class="div-table-row" id="divEstado">
                <label for="SELECTESTADO">* Estado</label>
                <select name="SELECTESTADO" id="idSELECTESTADO" 
                        title="Selecciona un estado" class="localidad" >
                    <option value="<%=empleados.getEstado() == 0 ? -1 : empleados.getEstado()%>"><%=strEstado.isEmpty() ? "Selecciona un estado" : strEstado%></option>
                </select>
                <p><%=validacion.getTxtestado()%></p>
            </div>
            <div class="div-table-row" id="divMunicipio">
                <label for="SELECTMUNICIPIO">* Municipio:</label>
                <select name="SELECTMUNICIPIO" id="idSELECTMUNICIPIO" 
                        title="Selecciona un municipio" class="localidad">
                    <option value="<%=empleados.getMunicipio() == 0 ? -1 : empleados.getMunicipio()%>"><%=strMunicipio.isEmpty() ? "Selecciona un municipio" : strMunicipio%></option>
                </select>
                <p><%=validacion.getTxtmunicipio()%></p>
            </div>
            <div class="div-table-row">
                <label id="lblcurp" for="TXTCURP">
                    * Clave Única de Registro de Población (CURP):</label>
                <input type="text" name="TXTCURP" id="idTXTCURP" 
                       value="<%=empleados.getCurp()%>" 
                       maxlength="18" />
                <input type="button" name="BTNCALCULARCURP" id="idBTNCALCULARCURP" 
                       value="Obtener CURP" class="button"/>
                <p><%=validacion.getTxtcurp()%></p>
            </div>
        </fieldset>
    </form>
</div>
<jsp:include page="/footer.jsp" flush="true"/>